package com.gaattc.dao;

import com.gaattc.model.Goods;
import com.gaattc.model.GoodsSpecs;
import com.gaattc.model.User;
import com.gaattc.model.bo.*;
import com.gaattc.model.vo.OrderVO;
import com.gaattc.model.vo.OrdersByPageVO;
import com.gaattc.model.vo.OrdersByStateVO;
import com.gaattc.model.vo.SpecVO;

import java.util.List;

public interface OrderDao {
    Integer getTotalCount(OrdersByPageBO ordersByPageBO);

    List<OrdersByPageVO> getOrdersByPage(OrdersByPageBO ordersByPageBO);

    int deleteOrder(int id);

    OrderVO getOrder(int id);

    List<SpecVO> getGoodsSpecs(int goodsId);

    SpecVO getOrderSpecId(String specName);

    String getSpecName(Integer spec);

    void changeOrder(ChangeOrderBO changeOrderBO);

    User getUser(String token);

    void addOrder(AddOrderBO addOrderBO, User user, GoodsSpecs goodsSpecs, Goods goods);

    GoodsSpecs getGoodsSpecsByDetailId(int goodsDetailId);

    Goods getGoodsById(int goodsId);

    List<OrdersByStateVO> getOrderByState(int state, Integer id);

    int settleAccounts(List<CartAccountsBO> cartList);

    void confirmReceive(int id);

    void sendComment(SendCommentBO sendCommentBO, User user, String specName);
}
